Skip to content

Conversation

@JohnChangUK
Copy link
Contributor

Description

Add CurseMCMS Package for Fast Curse/Uncurse Operations

MCMS designed for curse/uncurse operations on CCIP RMN Remote contract only.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                        CurseMCMS                            │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  - Multi-sig verification (same as MCMS)            │   │
│  │  - Merkle proof validation                          │   │
│  │  - EVM signature recovery (ECDSA)                   │   │
│  │  - NO timelock (immediate execution)                │   │
│  └─────────────────────────────────────────────────────┘   │
│                            │                                │
│                    dispatch_to_rmn_remote()                 │
│                            │                                │
│              ┌─────────────┼─────────────┐                  │
│              ▼             ▼             ▼                  │
│         curse()      uncurse()     curse_multiple()         │
│                                    uncurse_multiple()       │
└─────────────────────────────────────────────────────────────┘
                             │
                             ▼
                    ┌────────────────┐
                    │   RMN Remote   │
                    │  (via allowed  │
                    │    cursers)    │
                    └────────────────┘

@JohnChangUK JohnChangUK marked this pull request as ready for review January 7, 2026 03:42
@JohnChangUK JohnChangUK requested a review from a team as a code owner January 7, 2026 03:42
bcs_stream::deserialize_vector(
stream, |stream| bcs_stream::deserialize_vector_u8(stream)
);
let function_names =
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we also check function names here to be only curse/uncurse etc?

Copy link
Contributor Author

@JohnChangUK JohnChangUK Jan 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

timelock_execute_batch and timelock_bypasser_execute_batch both dispatch to RMN, so no need.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants